/*
 *
 *  * Copyright (c) [2019-2021] [NorthLan](lan6995@gmail.com)
 *  *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  *
 *  *     http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *
 */

package org.lan.iti.codegen;

import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import java.util.HashMap;
import java.util.Map;

/**
 * 类型收集器
 *
 * @author NorthLan
 * @date 2021-02-01
 * @url https://noahlan.com
 */
public class TypeCollector {
    private final Map<String, TypeElement> typeElements = new HashMap<>();

    public void syncForm(RoundEnvironment roundEnv) {
        for (Element element : roundEnv.getRootElements()) {
            if (element instanceof TypeElement) {
                String name = ((TypeElement) element).getQualifiedName().toString();
                this.typeElements.put(name, (TypeElement) element);
            }
        }
    }

    public TypeElement getByName(String name) {
        return this.typeElements.get(name);
    }
}
